/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.senac.maisconhecimento.viewdata;

import br.senac.maisconhecimento.dao.CategoriaDAO;
import br.senac.maisconhecimento.entidade.Categoria;
import br.senac.maisconhecimento.entidade.Livro;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.tomcat.util.http.fileupload.RequestContext;

/**
 *
 * @author Marcus Lemos
 */
public class ListarLivrosViewData extends ViewDataBase {
    
    public ListarLivrosViewData(){
    
    }
       
    public ListarLivrosViewData(HttpServletRequest request, List<Livro> livros) {
        super(request);
        
        this.livros = new ArrayList<LivroViewData>();
        if(livros != null) {
            for(Livro l : livros){
                this.livros.add(new LivroViewData(l));
            }
        }               
    }   
    
    public ListarLivrosViewData(HttpServletRequest request, String isbn, String nome, int codigoCategoria, String autor, List<Livro> livros) {
        this(request, livros);
        
        this.isbn = isbn;
        this.nome = nome;
        this.codigoCategoria = codigoCategoria;
        this.autor = autor;                      
    } 
    
    private String isbn;
    private String nome;
    private int codigoCategoria;
    private List<Categoria> categorias;
    private String autor;
    private List<LivroViewData> livros;

    /**
     * @return the isbn
     */
    public String getIsbn() {
        return isbn;
    }

    /**
     * @param isbn the isbn to set
     */
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the codigoCategoria
     */
    public int getCodigoCategoria() {
        return codigoCategoria;
    }

    /**
     * @param codigoCategoria the codigoCategoria to set
     */
    public void setCodigoCategoria(int codigoCategoria) {
        this.codigoCategoria = codigoCategoria;
    }

    /**
     * @return the categorias
     */
    public List<Categoria> getCategorias() {
        
        if(this.categorias == null) {
            CategoriaDAO dao = new CategoriaDAO();
            this.categorias = dao.listar();        
        }       
        
        return categorias;
    }

    /**
     * @param categorias the categorias to set
     */
    public void setCategorias(List<Categoria> categorias) {
        this.categorias = categorias;
    }

    /**
     * @return the autor
     */
    public String getAutor() {
        return autor;
    }

    /**
     * @param autor the autor to set
     */
    public void setAutor(String autor) {
        this.autor = autor;
    }

    /**
     * @return the livros
     */
    public List<LivroViewData> getLivros() {
        return livros;
    }

    /**
     * @param livros the livros to set
     */
    public void setLivros(List<LivroViewData> livros) {
        this.livros = livros;
    }
    
    
    
}
